
dojo.require("dojo.crypto");dojo.provide("dojo.crypto.MD5");dojo.crypto.MD5=new function(){var chrsz=8;var mask=(1<<chrsz)-1;function toWord(s){var wa=[];for(var i=0;i<s.length*chrsz;i+=chrsz){wa[i>>5]|=(s.charCodeAt(i/chrsz)&mask)<<(i%32);}
return wa;}
function toString(wa){var s=[];for(var i=0;i<wa.length*32;i+=chrsz){s.push(String.fromCharCode((wa[i>>5]>>>(i%32))&mask));}
return s.join("");}
function toHex(wa){var h="0123456789abcdef";var s=[];for(var i=0;i<wa.length*4;i++){s.push(h.charAt((wa[i>>2]>>((i%4)*8+4))&15)+h.charAt((wa[i>>2]>>((i%4)*8))&15));}
return s.join("");}
function toBase64(wa){var p="=";var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var s=[];for(var i=0;i<wa.length*4;i+=3){var t=(((wa[i>>2]>>8*(i%4))&255)<<16)|(((wa[i+1>>2]>>8*((i+1)%4))&255)<<8)|((wa[i+2>>2]>>8*((i+2)%4))&255);for(var j=0;j<4;j++){if(i*8+j*6>wa.length*32){s.push(p);}else{s.push(tab.charAt((t>>6*(3-j))&63));}}}
return s.join("");}
function add(x,y){var l=(x&65535)+(y&65535);var m=(x>>16)+(y>>16)+(l>>16);return(m<<16)|(l&65535);}
function R(n,c){return(n<<c)|(n>>>(32-c));}
function C(q,a,b,x,s,t){return add(R(add(add(a,q),add(x,t)),s),b);}
function FF(a,b,c,d,x,s,t){return C((b&c)|((~b)&d),a,b,x,s,t);}
function GG(a,b,c,d,x,s,t){return C((b&d)|(c&(~d)),a,b,x,s,t);}
function HH(a,b,c,d,x,s,t){return C(b^c^d,a,b,x,s,t);}
function II(a,b,c,d,x,s,t){return C(c^(b|(~d)),a,b,x,s,t);}
function core(x,len){x[len>>5]|=128<<((len)%32);x[(((len+64)>>>9)<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i<x.length;i+=16){var olda=a;var oldb=b;var oldc=c;var oldd=d;a=FF(a,b,c,d,x[i+0],7,-680876936);d=FF(d,a,b,c,x[i+1],12,-389564586);c=FF(c,d,a,b,x[i+2],17,606105819);b=FF(b,c,d,a,x[i+3],22,-1044525330);a=FF(a,b,c,d,x[i+4],7,-176418897);d=FF(d,a,b,c,x[i+5],12,1200080426);c=FF(c,d,a,b,x[i+6],17,-1473231341);b=FF(b,c,d,a,x[i+7],22,-45705983);a=FF(a,b,c,d,x[i+8],7,1770035416);d=FF(d,a,b,c,x[i+9],12,-1958414417);c=FF(c,d,a,b,x[i+10],17,-42063);b=FF(b,c,d,a,x[i+11],22,-1990404162);a=FF(a,b,c,d,x[i+12],7,1804603682);d=FF(d,a,b,c,x[i+13],12,-40341101);c=FF(c,d,a,b,x[i+14],17,-1502002290);b=FF(b,c,d,a,x[i+15],22,1236535329);a=GG(a,b,c,d,x[i+1],5,-165796510);d=GG(d,a,b,c,x[i+6],9,-1069501632);c=GG(c,d,a,b,x[i+11],14,643717713);b=GG(b,c,d,a,x[i+0],20,-373897302);a=GG(a,b,c,d,x[i+5],5,-701558691);d=GG(d,a,b,c,x[i+10],9,38016083);c=GG(c,d,a,b,x[i+15],14,-660478335);b=GG(b,c,d,a,x[i+4],20,-405537848);a=GG(a,b,c,d,x[i+9],5,568446438);d=GG(d,a,b,c,x[i+14],9,-1019803690);c=GG(c,d,a,b,x[i+3],14,-187363961);b=GG(b,c,d,a,x[i+8],20,1163531501);a=GG(a,b,c,d,x[i+13],5,-1444681467);d=GG(d,a,b,c,x[i+2],9,-51403784);c=GG(c,d,a,b,x[i+7],14,1735328473);b=GG(b,c,d,a,x[i+12],20,-1926607734);a=HH(a,b,c,d,x[i+5],4,-378558);d=HH(d,a,b,c,x[i+8],11,-2022574463);c=HH(c,d,a,b,x[i+11],16,1839030562);b=HH(b,c,d,a,x[i+14],23,-35309556);a=HH(a,b,c,d,x[i+1],4,-1530992060);d=HH(d,a,b,c,x[i+4],11,1272893353);c=HH(c,d,a,b,x[i+7],16,-155497632);b=HH(b,c,d,a,x[i+10],23,-1094730640);a=HH(a,b,c,d,x[i+13],4,681279174);d=HH(d,a,b,c,x[i+0],11,-358537222);c=HH(c,d,a,b,x[i+3],16,-722521979);b=HH(b,c,d,a,x[i+6],23,76029189);a=HH(a,b,c,d,x[i+9],4,-640364487);d=HH(d,a,b,c,x[i+12],11,-421815835);c=HH(c,d,a,b,x[i+15],16,530742520);b=HH(b,c,d,a,x[i+2],23,-995338651);a=II(a,b,c,d,x[i+0],6,-198630844);d=II(d,a,b,c,x[i+7],10,1126891415);c=II(c,d,a,b,x[i+14],15,-1416354905);b=II(b,c,d,a,x[i+5],21,-57434055);a=II(a,b,c,d,x[i+12],6,1700485571);d=II(d,a,b,c,x[i+3],10,-1894986606);c=II(c,d,a,b,x[i+10],15,-1051523);b=II(b,c,d,a,x[i+1],21,-2054922799);a=II(a,b,c,d,x[i+8],6,1873313359);d=II(d,a,b,c,x[i+15],10,-30611744);c=II(c,d,a,b,x[i+6],15,-1560198380);b=II(b,c,d,a,x[i+13],21,1309151649);a=II(a,b,c,d,x[i+4],6,-145523070);d=II(d,a,b,c,x[i+11],10,-1120210379);c=II(c,d,a,b,x[i+2],15,718787259);b=II(b,c,d,a,x[i+9],21,-343485551);a=add(a,olda);b=add(b,oldb);c=add(c,oldc);d=add(d,oldd);}
return[a,b,c,d];}
function hmac(data,key){var wa=toWord(key);if(wa.length>16){wa=core(wa,key.length*chrsz);}
var l=[],r=[];for(var i=0;i<16;i++){l[i]=wa[i]^909522486;r[i]=wa[i]^1549556828;}
var h=core(l.concat(toWord(data)),512+data.length*chrsz);return core(r.concat(h),640);}
this.compute=function(data,outputType){var out=outputType||dojo.crypto.outputTypes.Base64;switch(out){case dojo.crypto.outputTypes.Hex:return toHex(core(toWord(data),data.length*chrsz));case dojo.crypto.outputTypes.String:return toString(core(toWord(data),data.length*chrsz));default:return toBase64(core(toWord(data),data.length*chrsz));}};this.getHMAC=function(data,key,outputType){var out=outputType||dojo.crypto.outputTypes.Base64;switch(out){case dojo.crypto.outputTypes.Hex:return toHex(hmac(data,key));case dojo.crypto.outputTypes.String:return toString(hmac(data,key));default:return toBase64(hmac(data,key));}};}();